Autogenerated HTML docs for v1.7.5.1-289-g2de58b 
diff --git a/RelNotes/1.7.5.2.txt b/RelNotes/1.7.5.2.txt new file mode 100644 index 0000000..2e7b157 --- /dev/null +++ b/RelNotes/1.7.5.2.txt 
@@ -0,0 +1,33 @@ +Git v1.7.5.2 Release Notes +========================== + +The release notes to 1.7.5.1 forgot to mention: + + * "git stash -p --no-keep-index" and "git stash --no-keep-index -p" now + mean the same thing. + + * "git upload-pack" (hence "git push" over git native protocol) had a + subtle race condition that could lead to a deadlock. + +Fixes since v1.7.5.1 +-------------------- + + * "git cvsimport" did not know that CVSNT stores its password file in a + location different from the traditional CVS. + + * "git diff-files" did not show the mode information from the working + tree side of an unmerged path correctly. + + * "git diff -M --cached" used to use unmerged path as a possible rename + source candidate, which made no sense. + + * "git merge-one-file" did not honor GIT_WORK_TREE settings when + handling a "both sides added, differently" conflict. + + * "git-p4" (in contrib) used a wrong base image while merge a file that + was added on both branches differently. + + * "git rebase -i -p" failed to preserve the history when there is a + redundant merge created with the --no-ff option. + +And other minor fixes and documentation updates. 
diff --git a/RelNotes/1.7.6.txt b/RelNotes/1.7.6.txt index f73a7b2..42b1823 100644 --- a/RelNotes/1.7.6.txt +++ b/RelNotes/1.7.6.txt 
@@ -18,14 +18,18 @@  * "git blame" learned "--abbrev[=<n>]" option to control the minimum  number of hexdigits shown for commit object names.   - * "git cvsimport" learned that CVSNT stores its password file in a - location different from the traditional CVS. -  * "git diff -C -C" used to disable the rename detection entirely when  there are too many copy candidate paths in the tree; now it falls  back to "-C" when doing so would keep the copy candidate paths  under the rename detection limit.   + * "git diff" and its family of commands learned --dirstat=0 to show + directories that contribute less than 0.1% of changes. + + * "git diff" and its family of commands learned --dirstat=lines mode to + assess damage to the directory based on number of lines in the patch + output, not based on the similarity numbers. +  * "git format-patch" learned "--quiet" option to suppress the output of  the names of generated files.   @@ -53,9 +57,6 @@  the tarball generation; snapshot from the same tree should result in  a same tarball.   - * "git-p4" (in contrib) learned to merge a file that was added on both - branches differently by using 2-way merge. -  Also contains various documentation updates and minor miscellaneous  changes.   @@ -70,17 +71,14 @@  one of them was given to the editor.  (merge jc/maint-add-p-overlapping-hunks later)   + * "git add -u" did not resolve a conflict where our history deleted and + their history modified the same file, and the working tree resolved to + keep a file. + (merge jc/fix-add-u-unmerged later) +  * "git config" used to choke with an insanely long line.  (merge ef/maint-strbuf-init later)   - * "git diff-files" did not show the mode information from the working - tree side of an unmerged path correctly. - (merge jc/fix-diff-files-unmerged later) - - * "git diff -M --cached" used to use unmerged path as a possible rename - source candidate, which made no sense. - (merge mz/maint-rename-unmerged later) -  * "git format-patch" when run with "--quiet" option used to produce a  nonsense result that consists of alternating empty output.  (merge early part of cn/format-patch-quiet later) @@ -95,27 +93,15 @@  configuration variables such as merge.ff, merge.log, etc.  (merge jc/maint-branch-mergeoptions later)   - * "git merge-one-file" did not honor GIT_WORK_TREE settings when - handling a "both sides added, differently" conflict. - (merge jk/merge-one-file-working-tree later) -  * "git mergetool" did not handle conflicted submoudules gracefully.  (merge jm/mergetool-submodules later)   - * "git rebase -i -p" failed to preserve the history when there is a - redundant merge created with the --no-ff option. - (merge aw/maint-rebase-i-p-no-ff later) - - * "git stash -p --no-keep-index" and "git stash --no-keep-index -p" now - mean the same thing. - (merge dm/stash-k-i-p later) - - * "git upload-pack" (hence "git push" over git native protocol) had a - subtle race condition that could lead to a deadlock. - (merge jk/maint-upload-pack-shallow later) + * "git send-pack" (hence "git push") over smalt-HTTP protocol could + deadlock when the client side pack-object died early. + (merge js/maint-send-pack-stateless-rpc-deadlock-fix later)    ---  exec >/var/tmp/1  echo O=$(git describe master) -O=v1.7.5.1-248-ga579498 +O=v1.7.5.1-288-ge4ae6ef  git shortlog --no-merges ^maint ^$O master 
diff --git a/diff-config.txt b/diff-config.txt index 2b1605f..1aed79e 100644 --- a/diff-config.txt +++ b/diff-config.txt 
@@ -8,6 +8,50 @@ 	affects only 'git diff' Porcelain, and not lower level 	'diff' commands such as 'git diff-files'.   +diff.dirstat:: +	A comma separated list of `--dirstat` parameters specifying the +	default behavior of the `--dirstat` option to linkgit:git-diff[1]` +	and friends. The defaults can be overridden on the command line +	(using `--dirstat=<param1,param2,...>`). The fallback defaults +	(when not changed by `diff.dirstat`) are `changes,noncumulative,3`. +	The following parameters are available: ++ +-- +`changes`;; +	Compute the dirstat numbers by counting the lines that have been +	removed from the source, or added to the destination. This ignores +	the amount of pure code movements within a file. In other words, +	rearranging lines in a file is not counted as much as other changes. +	This is the default behavior when no parameter is given. +`lines`;; +	Compute the dirstat numbers by doing the regular line-based diff +	analysis, and summing the removed/added line counts. (For binary +	files, count 64-byte chunks instead, since binary files have no +	natural concept of lines). This is a more expensive `--dirstat` +	behavior than the `changes` behavior, but it does count rearranged +	lines within a file as much as other changes. The resulting output +	is consistent with what you get from the other `--*stat` options. +`files`;; +	Compute the dirstat numbers by counting the number of files changed. +	Each changed file counts equally in the dirstat analysis. This is +	the computationally cheapest `--dirstat` behavior, since it does +	not have to look at the file contents at all. +`cumulative`;; +	Count changes in a child directory for the parent directory as well. +	Note that when using `cumulative`, the sum of the percentages +	reported may exceed 100%. The default (non-cumulative) behavior can +	be specified with the `noncumulative` parameter. +<limit>;; +	An integer parameter specifies a cut-off percent (3% by default). +	Directories contributing less than this percentage of the changes +	are not shown in the output. +-- ++ +Example: The following will count changed files, while ignoring +directories with less than 10% of the total amount of changed files, +and accumulating child directory counts in the parent directories: +`files,10,cumulative`. +  diff.external:: 	If this config variable is set, diff generation is not 	performed using the internal diff machinery, but using the 
diff --git a/diff-options.txt b/diff-options.txt index 9ca565d..c7ed946 100644 --- a/diff-options.txt +++ b/diff-options.txt 
@@ -66,19 +66,49 @@ 	number of modified files, as well as number of added and deleted 	lines.   ---dirstat[=<limit>]:: -	Output the distribution of relative amount of changes (number of lines added or -	removed) for each sub-directory. Directories with changes below -	a cut-off percent (3% by default) are not shown. The cut-off percent -	can be set with `--dirstat=<limit>`. Changes in a child directory are not -	counted for the parent directory, unless `--cumulative` is used. +--dirstat[=<param1,param2,...>]:: +	Output the distribution of relative amount of changes for each +	sub-directory. The behavior of `--dirstat` can be customized by +	passing it a comma separated list of parameters. +	The defaults are controlled by the `diff.dirstat` configuration +	variable (see linkgit:git-config[1]). +	The following parameters are available:  + -Note that the `--dirstat` option computes the changes while ignoring -the amount of pure code movements within a file. In other words, -rearranging lines in a file is not counted as much as other changes. - ---dirstat-by-file[=<limit>]:: -	Same as `--dirstat`, but counts changed files instead of lines. +-- +`changes`;; +	Compute the dirstat numbers by counting the lines that have been +	removed from the source, or added to the destination. This ignores +	the amount of pure code movements within a file. In other words, +	rearranging lines in a file is not counted as much as other changes. +	This is the default behavior when no parameter is given. +`lines`;; +	Compute the dirstat numbers by doing the regular line-based diff +	analysis, and summing the removed/added line counts. (For binary +	files, count 64-byte chunks instead, since binary files have no +	natural concept of lines). This is a more expensive `--dirstat` +	behavior than the `changes` behavior, but it does count rearranged +	lines within a file as much as other changes. The resulting output +	is consistent with what you get from the other `--*stat` options. +`files`;; +	Compute the dirstat numbers by counting the number of files changed. +	Each changed file counts equally in the dirstat analysis. This is +	the computationally cheapest `--dirstat` behavior, since it does +	not have to look at the file contents at all. +`cumulative`;; +	Count changes in a child directory for the parent directory as well. +	Note that when using `cumulative`, the sum of the percentages +	reported may exceed 100%. The default (non-cumulative) behavior can +	be specified with the `noncumulative` parameter. +<limit>;; +	An integer parameter specifies a cut-off percent (3% by default). +	Directories contributing less than this percentage of the changes +	are not shown in the output. +-- ++ +Example: The following will count changed files, while ignoring +directories with less than 10% of the total amount of changed files, +and accumulating child directory counts in the parent directories: +`--dirstat=files,10,cumulative`.    --summary:: 	Output a condensed summary of extended header information 
diff --git a/git-config.html b/git-config.html index 3300e28..61bd574 100644 --- a/git-config.html +++ b/git-config.html 
@@ -2125,6 +2125,83 @@  </p>   </dd>   <dt class="hdlist1">  +diff.dirstat  +</dt>  +<dd>  +<p>  + A comma separated list of <tt>--dirstat</tt> parameters specifying the  + default behavior of the <tt>--dirstat</tt> option to <a href="git-diff.html">git-diff(1)</a>`  + and friends. The defaults can be overridden on the command line  + (using <tt>--dirstat=&lt;param1,param2,&#8230;&gt;</tt>). The fallback defaults  + (when not changed by <tt>diff.dirstat</tt>) are <tt>changes,noncumulative,3</tt>.  + The following parameters are available:  +</p>  +<div class="dlist"><dl>  +<dt class="hdlist1">  +<tt>changes</tt>  +</dt>  +<dd>  +<p>  + Compute the dirstat numbers by counting the lines that have been  + removed from the source, or added to the destination. This ignores  + the amount of pure code movements within a file. In other words,  + rearranging lines in a file is not counted as much as other changes.  + This is the default behavior when no parameter is given.  +</p>  +</dd>  +<dt class="hdlist1">  +<tt>lines</tt>  +</dt>  +<dd>  +<p>  + Compute the dirstat numbers by doing the regular line-based diff  + analysis, and summing the removed/added line counts. (For binary  + files, count 64-byte chunks instead, since binary files have no  + natural concept of lines). This is a more expensive <tt>--dirstat</tt>  + behavior than the <tt>changes</tt> behavior, but it does count rearranged  + lines within a file as much as other changes. The resulting output  + is consistent with what you get from the other <tt>--*stat</tt> options.  +</p>  +</dd>  +<dt class="hdlist1">  +<tt>files</tt>  +</dt>  +<dd>  +<p>  + Compute the dirstat numbers by counting the number of files changed.  + Each changed file counts equally in the dirstat analysis. This is  + the computationally cheapest <tt>--dirstat</tt> behavior, since it does  + not have to look at the file contents at all.  +</p>  +</dd>  +<dt class="hdlist1">  +<tt>cumulative</tt>  +</dt>  +<dd>  +<p>  + Count changes in a child directory for the parent directory as well.  + Note that when using <tt>cumulative</tt>, the sum of the percentages  + reported may exceed 100%. The default (non-cumulative) behavior can  + be specified with the <tt>noncumulative</tt> parameter.  +</p>  +</dd>  +<dt class="hdlist1">  +&lt;limit&gt;  +</dt>  +<dd>  +<p>  + An integer parameter specifies a cut-off percent (3% by default).  + Directories contributing less than this percentage of the changes  + are not shown in the output.  +</p>  +</dd>  +</dl></div>  +<div class="paragraph"><p>Example: The following will count changed files, while ignoring  +directories with less than 10% of the total amount of changed files,  +and accumulating child directory counts in the parent directories:  +<tt>files,10,cumulative</tt>.</p></div>  +</dd>  +<dt class="hdlist1">   diff.external   </dt>   <dd>  
diff --git a/git-diff-files.html b/git-diff-files.html index c818ccd..eed6f55 100644 --- a/git-diff-files.html +++ b/git-diff-files.html 
@@ -513,29 +513,83 @@  </p>   </dd>   <dt class="hdlist1">  ---dirstat[=&lt;limit&gt;]  +--dirstat[=&lt;param1,param2,&#8230;&gt;]   </dt>   <dd>   <p>  - Output the distribution of relative amount of changes (number of lines added or  - removed) for each sub-directory. Directories with changes below  - a cut-off percent (3% by default) are not shown. The cut-off percent  - can be set with <tt>--dirstat=&lt;limit&gt;</tt>. Changes in a child directory are not  - counted for the parent directory, unless <tt>--cumulative</tt> is used.  + Output the distribution of relative amount of changes for each  + sub-directory. The behavior of <tt>--dirstat</tt> can be customized by  + passing it a comma separated list of parameters.  + The defaults are controlled by the <tt>diff.dirstat</tt> configuration  + variable (see <a href="git-config.html">git-config(1)</a>).  + The following parameters are available:   </p>  -<div class="paragraph"><p>Note that the <tt>--dirstat</tt> option computes the changes while ignoring  -the amount of pure code movements within a file. In other words,  -rearranging lines in a file is not counted as much as other changes.</p></div>  +<div class="dlist"><dl>  +<dt class="hdlist1">  +<tt>changes</tt>  +</dt>  +<dd>  +<p>  + Compute the dirstat numbers by counting the lines that have been  + removed from the source, or added to the destination. This ignores  + the amount of pure code movements within a file. In other words,  + rearranging lines in a file is not counted as much as other changes.  + This is the default behavior when no parameter is given.  +</p>   </dd>   <dt class="hdlist1">  ---dirstat-by-file[=&lt;limit&gt;]  +<tt>lines</tt>   </dt>   <dd>   <p>  - Same as <tt>--dirstat</tt>, but counts changed files instead of lines.  + Compute the dirstat numbers by doing the regular line-based diff  + analysis, and summing the removed/added line counts. (For binary  + files, count 64-byte chunks instead, since binary files have no  + natural concept of lines). This is a more expensive <tt>--dirstat</tt>  + behavior than the <tt>changes</tt> behavior, but it does count rearranged  + lines within a file as much as other changes. The resulting output  + is consistent with what you get from the other <tt>--*stat</tt> options.   </p>   </dd>   <dt class="hdlist1">  +<tt>files</tt>  +</dt>  +<dd>  +<p>  + Compute the dirstat numbers by counting the number of files changed.  + Each changed file counts equally in the dirstat analysis. This is  + the computationally cheapest <tt>--dirstat</tt> behavior, since it does  + not have to look at the file contents at all.  +</p>  +</dd>  +<dt class="hdlist1">  +<tt>cumulative</tt>  +</dt>  +<dd>  +<p>  + Count changes in a child directory for the parent directory as well.  + Note that when using <tt>cumulative</tt>, the sum of the percentages  + reported may exceed 100%. The default (non-cumulative) behavior can  + be specified with the <tt>noncumulative</tt> parameter.  +</p>  +</dd>  +<dt class="hdlist1">  +&lt;limit&gt;  +</dt>  +<dd>  +<p>  + An integer parameter specifies a cut-off percent (3% by default).  + Directories contributing less than this percentage of the changes  + are not shown in the output.  +</p>  +</dd>  +</dl></div>  +<div class="paragraph"><p>Example: The following will count changed files, while ignoring  +directories with less than 10% of the total amount of changed files,  +and accumulating child directory counts in the parent directories:  +<tt>--dirstat=files,10,cumulative</tt>.</p></div>  +</dd>  +<dt class="hdlist1">   --summary   </dt>   <dd>  
diff --git a/git-diff-index.html b/git-diff-index.html index e140187..96699dd 100644 --- a/git-diff-index.html +++ b/git-diff-index.html 
@@ -514,29 +514,83 @@  </p>   </dd>   <dt class="hdlist1">  ---dirstat[=&lt;limit&gt;]  +--dirstat[=&lt;param1,param2,&#8230;&gt;]   </dt>   <dd>   <p>  - Output the distribution of relative amount of changes (number of lines added or  - removed) for each sub-directory. Directories with changes below  - a cut-off percent (3% by default) are not shown. The cut-off percent  - can be set with <tt>--dirstat=&lt;limit&gt;</tt>. Changes in a child directory are not  - counted for the parent directory, unless <tt>--cumulative</tt> is used.  + Output the distribution of relative amount of changes for each  + sub-directory. The behavior of <tt>--dirstat</tt> can be customized by  + passing it a comma separated list of parameters.  + The defaults are controlled by the <tt>diff.dirstat</tt> configuration  + variable (see <a href="git-config.html">git-config(1)</a>).  + The following parameters are available:   </p>  -<div class="paragraph"><p>Note that the <tt>--dirstat</tt> option computes the changes while ignoring  -the amount of pure code movements within a file. In other words,  -rearranging lines in a file is not counted as much as other changes.</p></div>  +<div class="dlist"><dl>  +<dt class="hdlist1">  +<tt>changes</tt>  +</dt>  +<dd>  +<p>  + Compute the dirstat numbers by counting the lines that have been  + removed from the source, or added to the destination. This ignores  + the amount of pure code movements within a file. In other words,  + rearranging lines in a file is not counted as much as other changes.  + This is the default behavior when no parameter is given.  +</p>   </dd>   <dt class="hdlist1">  ---dirstat-by-file[=&lt;limit&gt;]  +<tt>lines</tt>   </dt>   <dd>   <p>  - Same as <tt>--dirstat</tt>, but counts changed files instead of lines.  + Compute the dirstat numbers by doing the regular line-based diff  + analysis, and summing the removed/added line counts. (For binary  + files, count 64-byte chunks instead, since binary files have no  + natural concept of lines). This is a more expensive <tt>--dirstat</tt>  + behavior than the <tt>changes</tt> behavior, but it does count rearranged  + lines within a file as much as other changes. The resulting output  + is consistent with what you get from the other <tt>--*stat</tt> options.   </p>   </dd>   <dt class="hdlist1">  +<tt>files</tt>  +</dt>  +<dd>  +<p>  + Compute the dirstat numbers by counting the number of files changed.  + Each changed file counts equally in the dirstat analysis. This is  + the computationally cheapest <tt>--dirstat</tt> behavior, since it does  + not have to look at the file contents at all.  +</p>  +</dd>  +<dt class="hdlist1">  +<tt>cumulative</tt>  +</dt>  +<dd>  +<p>  + Count changes in a child directory for the parent directory as well.  + Note that when using <tt>cumulative</tt>, the sum of the percentages  + reported may exceed 100%. The default (non-cumulative) behavior can  + be specified with the <tt>noncumulative</tt> parameter.  +</p>  +</dd>  +<dt class="hdlist1">  +&lt;limit&gt;  +</dt>  +<dd>  +<p>  + An integer parameter specifies a cut-off percent (3% by default).  + Directories contributing less than this percentage of the changes  + are not shown in the output.  +</p>  +</dd>  +</dl></div>  +<div class="paragraph"><p>Example: The following will count changed files, while ignoring  +directories with less than 10% of the total amount of changed files,  +and accumulating child directory counts in the parent directories:  +<tt>--dirstat=files,10,cumulative</tt>.</p></div>  +</dd>  +<dt class="hdlist1">   --summary   </dt>   <dd>  
diff --git a/git-diff-tree.html b/git-diff-tree.html index cf20aee..e69135e 100644 --- a/git-diff-tree.html +++ b/git-diff-tree.html 
@@ -518,29 +518,83 @@  </p>   </dd>   <dt class="hdlist1">  ---dirstat[=&lt;limit&gt;]  +--dirstat[=&lt;param1,param2,&#8230;&gt;]   </dt>   <dd>   <p>  - Output the distribution of relative amount of changes (number of lines added or  - removed) for each sub-directory. Directories with changes below  - a cut-off percent (3% by default) are not shown. The cut-off percent  - can be set with <tt>--dirstat=&lt;limit&gt;</tt>. Changes in a child directory are not  - counted for the parent directory, unless <tt>--cumulative</tt> is used.  + Output the distribution of relative amount of changes for each  + sub-directory. The behavior of <tt>--dirstat</tt> can be customized by  + passing it a comma separated list of parameters.  + The defaults are controlled by the <tt>diff.dirstat</tt> configuration  + variable (see <a href="git-config.html">git-config(1)</a>).  + The following parameters are available:   </p>  -<div class="paragraph"><p>Note that the <tt>--dirstat</tt> option computes the changes while ignoring  -the amount of pure code movements within a file. In other words,  -rearranging lines in a file is not counted as much as other changes.</p></div>  +<div class="dlist"><dl>  +<dt class="hdlist1">  +<tt>changes</tt>  +</dt>  +<dd>  +<p>  + Compute the dirstat numbers by counting the lines that have been  + removed from the source, or added to the destination. This ignores  + the amount of pure code movements within a file. In other words,  + rearranging lines in a file is not counted as much as other changes.  + This is the default behavior when no parameter is given.  +</p>   </dd>   <dt class="hdlist1">  ---dirstat-by-file[=&lt;limit&gt;]  +<tt>lines</tt>   </dt>   <dd>   <p>  - Same as <tt>--dirstat</tt>, but counts changed files instead of lines.  + Compute the dirstat numbers by doing the regular line-based diff  + analysis, and summing the removed/added line counts. (For binary  + files, count 64-byte chunks instead, since binary files have no  + natural concept of lines). This is a more expensive <tt>--dirstat</tt>  + behavior than the <tt>changes</tt> behavior, but it does count rearranged  + lines within a file as much as other changes. The resulting output  + is consistent with what you get from the other <tt>--*stat</tt> options.   </p>   </dd>   <dt class="hdlist1">  +<tt>files</tt>  +</dt>  +<dd>  +<p>  + Compute the dirstat numbers by counting the number of files changed.  + Each changed file counts equally in the dirstat analysis. This is  + the computationally cheapest <tt>--dirstat</tt> behavior, since it does  + not have to look at the file contents at all.  +</p>  +</dd>  +<dt class="hdlist1">  +<tt>cumulative</tt>  +</dt>  +<dd>  +<p>  + Count changes in a child directory for the parent directory as well.  + Note that when using <tt>cumulative</tt>, the sum of the percentages  + reported may exceed 100%. The default (non-cumulative) behavior can  + be specified with the <tt>noncumulative</tt> parameter.  +</p>  +</dd>  +<dt class="hdlist1">  +&lt;limit&gt;  +</dt>  +<dd>  +<p>  + An integer parameter specifies a cut-off percent (3% by default).  + Directories contributing less than this percentage of the changes  + are not shown in the output.  +</p>  +</dd>  +</dl></div>  +<div class="paragraph"><p>Example: The following will count changed files, while ignoring  +directories with less than 10% of the total amount of changed files,  +and accumulating child directory counts in the parent directories:  +<tt>--dirstat=files,10,cumulative</tt>.</p></div>  +</dd>  +<dt class="hdlist1">   --summary   </dt>   <dd>  
diff --git a/git-diff.html b/git-diff.html index 36e6b92..f33a7aa 100644 --- a/git-diff.html +++ b/git-diff.html 
@@ -603,29 +603,83 @@  </p>   </dd>   <dt class="hdlist1">  ---dirstat[=&lt;limit&gt;]  +--dirstat[=&lt;param1,param2,&#8230;&gt;]   </dt>   <dd>   <p>  - Output the distribution of relative amount of changes (number of lines added or  - removed) for each sub-directory. Directories with changes below  - a cut-off percent (3% by default) are not shown. The cut-off percent  - can be set with <tt>--dirstat=&lt;limit&gt;</tt>. Changes in a child directory are not  - counted for the parent directory, unless <tt>--cumulative</tt> is used.  + Output the distribution of relative amount of changes for each  + sub-directory. The behavior of <tt>--dirstat</tt> can be customized by  + passing it a comma separated list of parameters.  + The defaults are controlled by the <tt>diff.dirstat</tt> configuration  + variable (see <a href="git-config.html">git-config(1)</a>).  + The following parameters are available:   </p>  -<div class="paragraph"><p>Note that the <tt>--dirstat</tt> option computes the changes while ignoring  -the amount of pure code movements within a file. In other words,  -rearranging lines in a file is not counted as much as other changes.</p></div>  +<div class="dlist"><dl>  +<dt class="hdlist1">  +<tt>changes</tt>  +</dt>  +<dd>  +<p>  + Compute the dirstat numbers by counting the lines that have been  + removed from the source, or added to the destination. This ignores  + the amount of pure code movements within a file. In other words,  + rearranging lines in a file is not counted as much as other changes.  + This is the default behavior when no parameter is given.  +</p>   </dd>   <dt class="hdlist1">  ---dirstat-by-file[=&lt;limit&gt;]  +<tt>lines</tt>   </dt>   <dd>   <p>  - Same as <tt>--dirstat</tt>, but counts changed files instead of lines.  + Compute the dirstat numbers by doing the regular line-based diff  + analysis, and summing the removed/added line counts. (For binary  + files, count 64-byte chunks instead, since binary files have no  + natural concept of lines). This is a more expensive <tt>--dirstat</tt>  + behavior than the <tt>changes</tt> behavior, but it does count rearranged  + lines within a file as much as other changes. The resulting output  + is consistent with what you get from the other <tt>--*stat</tt> options.   </p>   </dd>   <dt class="hdlist1">  +<tt>files</tt>  +</dt>  +<dd>  +<p>  + Compute the dirstat numbers by counting the number of files changed.  + Each changed file counts equally in the dirstat analysis. This is  + the computationally cheapest <tt>--dirstat</tt> behavior, since it does  + not have to look at the file contents at all.  +</p>  +</dd>  +<dt class="hdlist1">  +<tt>cumulative</tt>  +</dt>  +<dd>  +<p>  + Count changes in a child directory for the parent directory as well.  + Note that when using <tt>cumulative</tt>, the sum of the percentages  + reported may exceed 100%. The default (non-cumulative) behavior can  + be specified with the <tt>noncumulative</tt> parameter.  +</p>  +</dd>  +<dt class="hdlist1">  +&lt;limit&gt;  +</dt>  +<dd>  +<p>  + An integer parameter specifies a cut-off percent (3% by default).  + Directories contributing less than this percentage of the changes  + are not shown in the output.  +</p>  +</dd>  +</dl></div>  +<div class="paragraph"><p>Example: The following will count changed files, while ignoring  +directories with less than 10% of the total amount of changed files,  +and accumulating child directory counts in the parent directories:  +<tt>--dirstat=files,10,cumulative</tt>.</p></div>  +</dd>  +<dt class="hdlist1">   --summary   </dt>   <dd>  
diff --git a/git-format-patch.html b/git-format-patch.html index b2ddfd1..0fc53b9 100644 --- a/git-format-patch.html +++ b/git-format-patch.html 
@@ -545,29 +545,83 @@  </p>   </dd>   <dt class="hdlist1">  ---dirstat[=&lt;limit&gt;]  +--dirstat[=&lt;param1,param2,&#8230;&gt;]   </dt>   <dd>   <p>  - Output the distribution of relative amount of changes (number of lines added or  - removed) for each sub-directory. Directories with changes below  - a cut-off percent (3% by default) are not shown. The cut-off percent  - can be set with <tt>--dirstat=&lt;limit&gt;</tt>. Changes in a child directory are not  - counted for the parent directory, unless <tt>--cumulative</tt> is used.  + Output the distribution of relative amount of changes for each  + sub-directory. The behavior of <tt>--dirstat</tt> can be customized by  + passing it a comma separated list of parameters.  + The defaults are controlled by the <tt>diff.dirstat</tt> configuration  + variable (see <a href="git-config.html">git-config(1)</a>).  + The following parameters are available:   </p>  -<div class="paragraph"><p>Note that the <tt>--dirstat</tt> option computes the changes while ignoring  -the amount of pure code movements within a file. In other words,  -rearranging lines in a file is not counted as much as other changes.</p></div>  +<div class="dlist"><dl>  +<dt class="hdlist1">  +<tt>changes</tt>  +</dt>  +<dd>  +<p>  + Compute the dirstat numbers by counting the lines that have been  + removed from the source, or added to the destination. This ignores  + the amount of pure code movements within a file. In other words,  + rearranging lines in a file is not counted as much as other changes.  + This is the default behavior when no parameter is given.  +</p>   </dd>   <dt class="hdlist1">  ---dirstat-by-file[=&lt;limit&gt;]  +<tt>lines</tt>   </dt>   <dd>   <p>  - Same as <tt>--dirstat</tt>, but counts changed files instead of lines.  + Compute the dirstat numbers by doing the regular line-based diff  + analysis, and summing the removed/added line counts. (For binary  + files, count 64-byte chunks instead, since binary files have no  + natural concept of lines). This is a more expensive <tt>--dirstat</tt>  + behavior than the <tt>changes</tt> behavior, but it does count rearranged  + lines within a file as much as other changes. The resulting output  + is consistent with what you get from the other <tt>--*stat</tt> options.   </p>   </dd>   <dt class="hdlist1">  +<tt>files</tt>  +</dt>  +<dd>  +<p>  + Compute the dirstat numbers by counting the number of files changed.  + Each changed file counts equally in the dirstat analysis. This is  + the computationally cheapest <tt>--dirstat</tt> behavior, since it does  + not have to look at the file contents at all.  +</p>  +</dd>  +<dt class="hdlist1">  +<tt>cumulative</tt>  +</dt>  +<dd>  +<p>  + Count changes in a child directory for the parent directory as well.  + Note that when using <tt>cumulative</tt>, the sum of the percentages  + reported may exceed 100%. The default (non-cumulative) behavior can  + be specified with the <tt>noncumulative</tt> parameter.  +</p>  +</dd>  +<dt class="hdlist1">  +&lt;limit&gt;  +</dt>  +<dd>  +<p>  + An integer parameter specifies a cut-off percent (3% by default).  + Directories contributing less than this percentage of the changes  + are not shown in the output.  +</p>  +</dd>  +</dl></div>  +<div class="paragraph"><p>Example: The following will count changed files, while ignoring  +directories with less than 10% of the total amount of changed files,  +and accumulating child directory counts in the parent directories:  +<tt>--dirstat=files,10,cumulative</tt>.</p></div>  +</dd>  +<dt class="hdlist1">   --summary   </dt>   <dd>  
diff --git a/git-log.html b/git-log.html index bd40856..1230429 100644 --- a/git-log.html +++ b/git-log.html 
@@ -2085,29 +2085,83 @@  </p>   </dd>   <dt class="hdlist1">  ---dirstat[=&lt;limit&gt;]  +--dirstat[=&lt;param1,param2,&#8230;&gt;]   </dt>   <dd>   <p>  - Output the distribution of relative amount of changes (number of lines added or  - removed) for each sub-directory. Directories with changes below  - a cut-off percent (3% by default) are not shown. The cut-off percent  - can be set with <tt>--dirstat=&lt;limit&gt;</tt>. Changes in a child directory are not  - counted for the parent directory, unless <tt>--cumulative</tt> is used.  + Output the distribution of relative amount of changes for each  + sub-directory. The behavior of <tt>--dirstat</tt> can be customized by  + passing it a comma separated list of parameters.  + The defaults are controlled by the <tt>diff.dirstat</tt> configuration  + variable (see <a href="git-config.html">git-config(1)</a>).  + The following parameters are available:   </p>  -<div class="paragraph"><p>Note that the <tt>--dirstat</tt> option computes the changes while ignoring  -the amount of pure code movements within a file. In other words,  -rearranging lines in a file is not counted as much as other changes.</p></div>  +<div class="dlist"><dl>  +<dt class="hdlist1">  +<tt>changes</tt>  +</dt>  +<dd>  +<p>  + Compute the dirstat numbers by counting the lines that have been  + removed from the source, or added to the destination. This ignores  + the amount of pure code movements within a file. In other words,  + rearranging lines in a file is not counted as much as other changes.  + This is the default behavior when no parameter is given.  +</p>   </dd>   <dt class="hdlist1">  ---dirstat-by-file[=&lt;limit&gt;]  +<tt>lines</tt>   </dt>   <dd>   <p>  - Same as <tt>--dirstat</tt>, but counts changed files instead of lines.  + Compute the dirstat numbers by doing the regular line-based diff  + analysis, and summing the removed/added line counts. (For binary  + files, count 64-byte chunks instead, since binary files have no  + natural concept of lines). This is a more expensive <tt>--dirstat</tt>  + behavior than the <tt>changes</tt> behavior, but it does count rearranged  + lines within a file as much as other changes. The resulting output  + is consistent with what you get from the other <tt>--*stat</tt> options.   </p>   </dd>   <dt class="hdlist1">  +<tt>files</tt>  +</dt>  +<dd>  +<p>  + Compute the dirstat numbers by counting the number of files changed.  + Each changed file counts equally in the dirstat analysis. This is  + the computationally cheapest <tt>--dirstat</tt> behavior, since it does  + not have to look at the file contents at all.  +</p>  +</dd>  +<dt class="hdlist1">  +<tt>cumulative</tt>  +</dt>  +<dd>  +<p>  + Count changes in a child directory for the parent directory as well.  + Note that when using <tt>cumulative</tt>, the sum of the percentages  + reported may exceed 100%. The default (non-cumulative) behavior can  + be specified with the <tt>noncumulative</tt> parameter.  +</p>  +</dd>  +<dt class="hdlist1">  +&lt;limit&gt;  +</dt>  +<dd>  +<p>  + An integer parameter specifies a cut-off percent (3% by default).  + Directories contributing less than this percentage of the changes  + are not shown in the output.  +</p>  +</dd>  +</dl></div>  +<div class="paragraph"><p>Example: The following will count changed files, while ignoring  +directories with less than 10% of the total amount of changed files,  +and accumulating child directory counts in the parent directories:  +<tt>--dirstat=files,10,cumulative</tt>.</p></div>  +</dd>  +<dt class="hdlist1">   --summary   </dt>   <dd>